package com.shrct.businessprocess.project;

import com.shrct.businessprocess.project.RCProject;
import com.shrct.businessprocess.project.RCProjectCBDSummaryInfo;
import com.shrct.businessprocess.project.RCProjectMoney;
import com.shrct.businessprocess.project.RCProjectSummaryInfo;
import com.shrct.businessprocess.project.impl.RCProjectStatImpl;
import com.shrct.businessprocess.project.proxy.RCProjectStatProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;

@EntityImplementation(implementBy = RCProjectStatImpl.class)
public interface RCProjectStat extends IModelObject {
  public abstract RCProjectSummaryInfo getSummaryInfo();
  
  public abstract RCProjectStat setSummaryInfo(final RCProjectSummaryInfo summaryInfo);
  
  public abstract RCProjectCBDSummaryInfo getCbdSummaryInfo();
  
  public abstract RCProjectStat setCbdSummaryInfo(final RCProjectCBDSummaryInfo cbdSummaryInfo);
  
  public abstract RCProjectMoney getContractPrice();
  
  public abstract RCProjectStat setContractPrice(final RCProjectMoney contractPrice);
  
  public abstract Double getActualCost();
  
  public abstract RCProjectStat setActualCost(final Double actualCost);
  
  public abstract Double getGrossProfitTarget();
  
  public abstract RCProjectStat setGrossProfitTarget(final Double grossProfitTarget);
  
  public abstract Double getGrossProfit4SalesTarget();
  
  public abstract RCProjectStat setGrossProfit4SalesTarget(final Double grossProfit4SalesTarget);
  
  public abstract Double getGrossProfitGGP();
  
  public abstract RCProjectStat setGrossProfitGGP(final Double grossProfitGGP);
  
  public abstract Double getGrossProfit4SalesGGP();
  
  public abstract RCProjectStat setGrossProfit4SalesGGP(final Double grossProfit4SalesGGP);
  
  public abstract Double getPartARemain();
  
  public abstract RCProjectStat setPartARemain(final Double partARemain);
  
  public abstract Double getPartBRemain();
  
  public abstract RCProjectStat setPartBRemain(final Double partBRemain);
  
  public abstract Double getPartCRemain();
  
  public abstract RCProjectStat setPartCRemain(final Double partCRemain);
  
  public abstract Double getPartDRemain();
  
  public abstract RCProjectStat setPartDRemain(final Double partDRemain);
  
  public abstract Double getPartERemain();
  
  public abstract RCProjectStat setPartERemain(final Double partERemain);
  
  public abstract Double getPartFRemain();
  
  public abstract RCProjectStat setPartFRemain(final Double partFRemain);
  
  public abstract RCProject getProject();
  
  public abstract void updateContractPrice();
  
  public abstract void updateInfo();
  
  public abstract RCProjectStatProxy toProxy();
}
